// 左侧树拖拽功能
$(function () {
	// 先将清楚控制台清理的问题解决，后续删除代码
	console.isDebugMode=true
    // 准备div，供给拖拽时触发
    $('.plugin-eform.inner.b-plugin-body.noPadding').append("<dvi id='leftTreeScrollDiv' style='width: 3px;height: 100%;position: absolute;background-color: rgb(215, 215, 215);display: inline-block;top: 0;left: 210px;cursor: e-resize;'>")
    // 最大只能设置为500px的左树
    $('.plugMain.leftTree').css('max-width','500px')
    // 最小只能设置为150px的左树
    $('.plugMain.leftTree').css('min-width','150px')
    //绑定需要拖拽改变大小的元素对象   
    bindResize(document.querySelector('.plugMain.leftTree'));
});

function bindResize(el) {
    if (!el) {
        return;
    }
    //初始化参数   
    var els = el.style,
        //鼠标的 X 和 Y 轴坐标   
        x = 0;
    //鼠标点击对应得元素时，获取初始值、绑定事件
    $(document.querySelector('#leftTreeScrollDiv')).mousedown(function (e) {
        // 最大只能设置为500px的左树
        $('.plugMain.leftTree').css('max-width','500px')
        // 最小只能设置为150px的左树
        $('.plugMain.leftTree').css('min-width','150px')
        
        // 添加遮罩，防止mousemove遇到iframe时事件失效
        var moveFixBox=$('<div class="moveFixBox">').css({"position":"fixed","top":"0","left":"0","width":"100%","height":"100%","cursor":"e-resize"})
        moveFixBox.appendTo("body")

        // 开始准备数据
        window.top.firstLength=els.width;
        console.log(parseInt(window.top.firstLength))
        //按下元素后，计算当前鼠标与对象计算后的坐标  
        x = e.clientX - el.offsetWidth;
        // console.log(x)
        //在支持 setCapture 做些东东  让一个元素可以捕获所有的鼠标事件(只有IE支持)
        el.setCapture ? (
            //捕捉焦点   
            el.setCapture(),
            //设置事件   
            el.onmousemove = function (ev) {
                mouseMove(ev || event)
            },
            el.onmouseup = mouseUp
        ) : (
            //绑定事件   
            $(document).bind("mousemove", mouseMove).bind("mouseup", mouseUp)
        )   
        //防止默认事件发生   
        e.preventDefault()
    });

    //移动事件   
    function mouseMove(e) {
        
        //宇宙超级无敌运算中... 
        els.width = e.clientX - x + 'px'; //改变宽度
        // 当移动距离大于2px时，添加遮罩，变化距离
        // if($(".moveFixBox").length===0&&Math.abs(parseInt(window.top.firstLength)-parseInt(els.width))>2){
            
        // }
        resizeTableWidth();
    }
    //停止事件   

    function mouseUp() {

        resizeTableWidth();
        var ev = document.createEvent('Event');
        ev.initEvent('resize', true, true);
        window.dispatchEvent(ev);
        //在支持 releaseCapture 做些东东   
        el.releaseCapture ? (
            //释放焦点   
            el.releaseCapture(),
            //移除事件   
            el.onmousemove = el.onmouseup = null
        ) : (
            //卸载事件   
            $(document).unbind("mousemove", mouseMove).unbind("mouseup", mouseUp),
            $(".moveFixBox").remove()
        )
    }
    // 时刻计算表格宽度
    function resizeTableWidth() {
        var treeWidth = $('.plugMain.leftTree').width();
        // $('#tableDom').removeAttr('style')
        // $('#tableDom').css('width', 'calc(100% - ' + treeWidth + 'px)');

        // // 左侧树
        $('.plugMain.leftTree').css('width',treeWidth+'px',)
        // // 左侧右下小图标
        $('#treeToggleOpen>img').css('left',treeWidth+'px')
        // // 右侧数据
        $('#leftTreeScrollDiv').css('left',treeWidth+'px')
        $('.plugMain.IFrame.showDetails').css('width','calc(99% - '+treeWidth+'px)')
    }
}
